<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    /**
     * 基本数据类型
     *  String Number Boolean Null Undefined
     *
     *  引用数据类型
     *  Object
     *
     *  js中为我们提供了三个包装类，可以将基本数据类型转换为对象
     *      String():将基本数据类型转换为字符串对象
     *      Number()：将基本数据类型转换为数字对象
     *      Boolean()：将基本数据类型转换为布尔对象
     */

    var num = new Number(10);
    var string = new String("hello");
    var boolean = new Boolean( true);
    console.log(typeof num)  //类型不再是number，而是object
    console.log(typeof string) //类型不再是string，而是object
    console.log(typeof boolean) //类型不再是boolean，而是object

    //向num中添加一个属性
    num.hello="你好";
    console.log(num)

    /**
     * 方法和属性只能添加给对象，不能添加给基本数据类型
     * 当我们对一些基本数据类型的值去使用属性和方法时，
     *   浏览器会临时使用包装类将基本数据类型转换为对象，然后使用对象中的属性和方法
     *   调完后，再恢复成基本数据类型
     */

    console.log("----------------------------------------------------------------------------------------------------")
    var s = 123;
    s=s.toString();  //第一次装换
    s.hello="你好";   //第二次转换
    console.log(s.hello)
    console.log(typeof s)





</script>

</body>
</html>
